home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / music / 188 / c / parse.c < prev    next >
C/C++ Source or Header  |  1987-10-14  |  664b  |  46 lines

  1. #include <ctype.h>
  2. #include "qsed.h"
  3.  
  4. void parse(data,cmd)        /* parse a command line into parts */
  5. char *data;
  6. COMMAND *cmd;
  7. {
  8.     int i=0,result[2];
  9.  
  10.     result[0]=result[1]=0;
  11.  
  12.     while(*data)
  13.     {
  14.         if(isdigit(*data))
  15.             result[i]=result[i]*10+(*data++ - '0');
  16.         else if(*data == ',' && i==0)
  17.         {
  18.             i++;
  19.             data++;
  20.         }
  21.         else break;
  22.     }
  23.     cmd->start=result[0];
  24.     cmd->end=result[i];
  25.     switch(*data)
  26.     {
  27.     case 'a':
  28.         cmd->type=COM_ADD;
  29.         break;
  30.     case 'c':
  31.         cmd->type=COM_CHG;
  32.         break;
  33.     case 'd':
  34.         cmd->type=COM_DEL;
  35.         break;
  36.     default:
  37.         cmd->type=COM_ERR;
  38.         break;
  39.     }
  40.     if((cmd->type & COM_DEL)==COM_DEL)
  41.     {
  42.         cmd->start--;
  43.  
  44.     }    
  45. }
  46.